package string;
/**
 * 1.java会将所有使用字面量(直接量)形式创建的字符串对象缓存在常量池中，
 *   每当使用相同字面量形式创建字符串时，会重用对象以减少内存开销
 * 2.new String()创建时，一定会创建新对象
 * 3.String是不变对象，创建后内容不可改变，改变则创建新对象
 * 4.若想比较字符串内容相同，需要使用equals()方法
 */
public class StringDemo {
    public static void main(String[] args) {
        String s1 = "123abc";
        String s2 = "123abc";
        String s4 = "123abc";
        System.out.println(s1 == s2);
        System.out.println(s4 == s2);

        String s3 = new String("123abc");
        System.out.println(s1 == s3);

        s1  = s1 +"!";
        System.out.println(s1==s2);

        String s5 = "123"+"abc";
        System.out.println(s5==s2);//比较的是地址,因为是字面量的字符拼接,因此为true


        System.out.println(s5.equals(s3));//比较的是返回值不是地址,因此为true
    }
}
